package com.ruoyi.xp.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 虾皮订单对象 t_xp_order
 * 
 * @author chdx
 * @date 2022-12-24
 */
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 表的id */
    private Long orderId;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderSn;

    /** 商店id */
    @Excel(name = "商店id")
    private Long shopId;

    /** 订单站点 */
    @Excel(name = "订单站点")
    private String region;

    /** 币种 */
    @Excel(name = "币种")
    private String currency;

    /** COD单 */
    @Excel(name = "COD单")
    private String cod;

    /** 支付金额 */
    @Excel(name = "支付金额")
    private BigDecimal totalAmount;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 物流渠道 */
    @Excel(name = "物流渠道")
    private String shippingCarrier;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String paymentMethod;

    /** 预估运费 */
    @Excel(name = "预估运费")
    private BigDecimal estimatedShippingFee;

    /** 买家留言 */
    @Excel(name = "买家留言")
    private String messageToSeller;

    /** 出货天数 */
    @Excel(name = "出货天数")
    private Long daysToShip;

    /** 最后发货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后发货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date shipByDate;

    /** 买家id */
    @Excel(name = "买家id")
    private Long buyerUserId;

    /** 买家姓名 */
    @Excel(name = "买家姓名")
    private String buyerUsername;

    /** 实际运费 */
    @Excel(name = "实际运费")
    private BigDecimal actualShippingFee;

    /** 是否报关 */
    @Excel(name = "是否报关")
    private String goodsToDeclare;

    /** 卖家备注 */
    @Excel(name = "卖家备注")
    private String note;

    /** 卖家备注更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "卖家备注更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date noteUpdateTime;

    /** 是否拆分等单 */
    @Excel(name = "是否拆分等单")
    private String splitUp;

    /** 买家订单取消原因 */
    @Excel(name = "买家订单取消原因")
    private String buyerCancelReason;

    /** 订单取消方 */
    @Excel(name = "订单取消方")
    private String cancelBy;

    /** 订单取消原因 */
    @Excel(name = "订单取消原因")
    private String cancelReason;

    /** 实际运费是否已确认 */
    @Excel(name = "实际运费是否已确认")
    private String actualShippingFeeConfirmed;

    /** 海外仓标识 */
    @Excel(name = "海外仓标识")
    private String fulfillmentFlag;

    /** 捡货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "捡货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pickupDoneTime;

    /** 买家选择的物流渠道 */
    @Excel(name = "买家选择的物流渠道")
    private String checkoutShippingCarrier;

    /** 退货运费 */
    @Excel(name = "退货运费")
    private BigDecimal reverseShippingFee;

    /** 卖家运费 */
    @Excel(name = "卖家运费")
    private BigDecimal sellerShippingFee;

    /** 卖家订单状态 */
    @Excel(name = "卖家订单状态")
    private String sellerOrderStatus;

    /** 卖家打包时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "卖家打包时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sellerPackageTime;

    /** 卖家打包人 */
    @Excel(name = "卖家打包人")
    private Long sellerPackageBy;

    /** 仓库订单状态 */
    @Excel(name = "仓库订单状态")
    private String warehouseOrderStatus;

    /** 仓库打包时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "仓库打包时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date warehousePackageTime;

    /** 仓库打包人 */
    @Excel(name = "仓库打包人")
    private String warehousePackageBy;

    /** 仓库处理状态 */
    @Excel(name = "仓库处理状态")
    private String warehouseProcessStatus;

    /** 追踪单号 */
    @Excel(name = "追踪单号")
    private String trackingNo;

    /** 订单开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderStartTime;

    /** 订单修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderModifiedTime;

    /** 订单支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 最后收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastDeliveryTime;

    /** 收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryTime;

    /** 返还时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "返还时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date refundTime;

    /** 订单完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /** 最后修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateDate;

    /** 最后修改人 */
    @Excel(name = "最后修改人")
    private Long lastUpdateBy;

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setOrderSn(String orderSn) 
    {
        this.orderSn = orderSn;
    }

    public String getOrderSn() 
    {
        return orderSn;
    }
    public void setShopId(Long shopId) 
    {
        this.shopId = shopId;
    }

    public Long getShopId() 
    {
        return shopId;
    }
    public void setRegion(String region) 
    {
        this.region = region;
    }

    public String getRegion() 
    {
        return region;
    }
    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }
    public void setCod(String cod) 
    {
        this.cod = cod;
    }

    public String getCod() 
    {
        return cod;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }
    public void setShippingCarrier(String shippingCarrier) 
    {
        this.shippingCarrier = shippingCarrier;
    }

    public String getShippingCarrier() 
    {
        return shippingCarrier;
    }
    public void setPaymentMethod(String paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() 
    {
        return paymentMethod;
    }
    public void setEstimatedShippingFee(BigDecimal estimatedShippingFee) 
    {
        this.estimatedShippingFee = estimatedShippingFee;
    }

    public BigDecimal getEstimatedShippingFee() 
    {
        return estimatedShippingFee;
    }
    public void setMessageToSeller(String messageToSeller) 
    {
        this.messageToSeller = messageToSeller;
    }

    public String getMessageToSeller() 
    {
        return messageToSeller;
    }
    public void setDaysToShip(Long daysToShip) 
    {
        this.daysToShip = daysToShip;
    }

    public Long getDaysToShip() 
    {
        return daysToShip;
    }
    public void setShipByDate(Date shipByDate) 
    {
        this.shipByDate = shipByDate;
    }

    public Date getShipByDate() 
    {
        return shipByDate;
    }
    public void setBuyerUserId(Long buyerUserId) 
    {
        this.buyerUserId = buyerUserId;
    }

    public Long getBuyerUserId() 
    {
        return buyerUserId;
    }
    public void setBuyerUsername(String buyerUsername) 
    {
        this.buyerUsername = buyerUsername;
    }

    public String getBuyerUsername() 
    {
        return buyerUsername;
    }
    public void setActualShippingFee(BigDecimal actualShippingFee) 
    {
        this.actualShippingFee = actualShippingFee;
    }

    public BigDecimal getActualShippingFee() 
    {
        return actualShippingFee;
    }
    public void setGoodsToDeclare(String goodsToDeclare) 
    {
        this.goodsToDeclare = goodsToDeclare;
    }

    public String getGoodsToDeclare() 
    {
        return goodsToDeclare;
    }
    public void setNote(String note) 
    {
        this.note = note;
    }

    public String getNote() 
    {
        return note;
    }
    public void setNoteUpdateTime(Date noteUpdateTime) 
    {
        this.noteUpdateTime = noteUpdateTime;
    }

    public Date getNoteUpdateTime() 
    {
        return noteUpdateTime;
    }
    public void setSplitUp(String splitUp) 
    {
        this.splitUp = splitUp;
    }

    public String getSplitUp() 
    {
        return splitUp;
    }
    public void setBuyerCancelReason(String buyerCancelReason) 
    {
        this.buyerCancelReason = buyerCancelReason;
    }

    public String getBuyerCancelReason() 
    {
        return buyerCancelReason;
    }
    public void setCancelBy(String cancelBy) 
    {
        this.cancelBy = cancelBy;
    }

    public String getCancelBy() 
    {
        return cancelBy;
    }
    public void setCancelReason(String cancelReason) 
    {
        this.cancelReason = cancelReason;
    }

    public String getCancelReason() 
    {
        return cancelReason;
    }
    public void setActualShippingFeeConfirmed(String actualShippingFeeConfirmed) 
    {
        this.actualShippingFeeConfirmed = actualShippingFeeConfirmed;
    }

    public String getActualShippingFeeConfirmed() 
    {
        return actualShippingFeeConfirmed;
    }
    public void setFulfillmentFlag(String fulfillmentFlag) 
    {
        this.fulfillmentFlag = fulfillmentFlag;
    }

    public String getFulfillmentFlag() 
    {
        return fulfillmentFlag;
    }
    public void setPickupDoneTime(Date pickupDoneTime) 
    {
        this.pickupDoneTime = pickupDoneTime;
    }

    public Date getPickupDoneTime() 
    {
        return pickupDoneTime;
    }
    public void setCheckoutShippingCarrier(String checkoutShippingCarrier) 
    {
        this.checkoutShippingCarrier = checkoutShippingCarrier;
    }

    public String getCheckoutShippingCarrier() 
    {
        return checkoutShippingCarrier;
    }
    public void setReverseShippingFee(BigDecimal reverseShippingFee) 
    {
        this.reverseShippingFee = reverseShippingFee;
    }

    public BigDecimal getReverseShippingFee() 
    {
        return reverseShippingFee;
    }
    public void setSellerShippingFee(BigDecimal sellerShippingFee) 
    {
        this.sellerShippingFee = sellerShippingFee;
    }

    public BigDecimal getSellerShippingFee() 
    {
        return sellerShippingFee;
    }
    public void setSellerOrderStatus(String sellerOrderStatus) 
    {
        this.sellerOrderStatus = sellerOrderStatus;
    }

    public String getSellerOrderStatus() 
    {
        return sellerOrderStatus;
    }
    public void setSellerPackageTime(Date sellerPackageTime) 
    {
        this.sellerPackageTime = sellerPackageTime;
    }

    public Date getSellerPackageTime() 
    {
        return sellerPackageTime;
    }
    public void setSellerPackageBy(Long sellerPackageBy) 
    {
        this.sellerPackageBy = sellerPackageBy;
    }

    public Long getSellerPackageBy() 
    {
        return sellerPackageBy;
    }
    public void setWarehouseOrderStatus(String warehouseOrderStatus) 
    {
        this.warehouseOrderStatus = warehouseOrderStatus;
    }

    public String getWarehouseOrderStatus() 
    {
        return warehouseOrderStatus;
    }
    public void setWarehousePackageTime(Date warehousePackageTime) 
    {
        this.warehousePackageTime = warehousePackageTime;
    }

    public Date getWarehousePackageTime() 
    {
        return warehousePackageTime;
    }
    public void setWarehousePackageBy(String warehousePackageBy) 
    {
        this.warehousePackageBy = warehousePackageBy;
    }

    public String getWarehousePackageBy() 
    {
        return warehousePackageBy;
    }
    public void setWarehouseProcessStatus(String warehouseProcessStatus) 
    {
        this.warehouseProcessStatus = warehouseProcessStatus;
    }

    public String getWarehouseProcessStatus() 
    {
        return warehouseProcessStatus;
    }
    public void setTrackingNo(String trackingNo) 
    {
        this.trackingNo = trackingNo;
    }

    public String getTrackingNo() 
    {
        return trackingNo;
    }
    public void setOrderStartTime(Date orderStartTime) 
    {
        this.orderStartTime = orderStartTime;
    }

    public Date getOrderStartTime() 
    {
        return orderStartTime;
    }
    public void setOrderModifiedTime(Date orderModifiedTime) 
    {
        this.orderModifiedTime = orderModifiedTime;
    }

    public Date getOrderModifiedTime() 
    {
        return orderModifiedTime;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setLastDeliveryTime(Date lastDeliveryTime) 
    {
        this.lastDeliveryTime = lastDeliveryTime;
    }

    public Date getLastDeliveryTime() 
    {
        return lastDeliveryTime;
    }
    public void setDeliveryTime(Date deliveryTime) 
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime() 
    {
        return deliveryTime;
    }
    public void setRefundTime(Date refundTime) 
    {
        this.refundTime = refundTime;
    }

    public Date getRefundTime() 
    {
        return refundTime;
    }
    public void setFinishTime(Date finishTime) 
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() 
    {
        return finishTime;
    }
    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }
    public void setLastUpdateDate(Date lastUpdateDate) 
    {
        this.lastUpdateDate = lastUpdateDate;
    }

    public Date getLastUpdateDate() 
    {
        return lastUpdateDate;
    }
    public void setLastUpdateBy(Long lastUpdateBy) 
    {
        this.lastUpdateBy = lastUpdateBy;
    }

    public Long getLastUpdateBy() 
    {
        return lastUpdateBy;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderSn", getOrderSn())
            .append("shopId", getShopId())
            .append("region", getRegion())
            .append("currency", getCurrency())
            .append("cod", getCod())
            .append("totalAmount", getTotalAmount())
            .append("orderStatus", getOrderStatus())
            .append("shippingCarrier", getShippingCarrier())
            .append("paymentMethod", getPaymentMethod())
            .append("estimatedShippingFee", getEstimatedShippingFee())
            .append("messageToSeller", getMessageToSeller())
            .append("daysToShip", getDaysToShip())
            .append("shipByDate", getShipByDate())
            .append("buyerUserId", getBuyerUserId())
            .append("buyerUsername", getBuyerUsername())
            .append("actualShippingFee", getActualShippingFee())
            .append("goodsToDeclare", getGoodsToDeclare())
            .append("note", getNote())
            .append("noteUpdateTime", getNoteUpdateTime())
            .append("splitUp", getSplitUp())
            .append("buyerCancelReason", getBuyerCancelReason())
            .append("cancelBy", getCancelBy())
            .append("cancelReason", getCancelReason())
            .append("actualShippingFeeConfirmed", getActualShippingFeeConfirmed())
            .append("fulfillmentFlag", getFulfillmentFlag())
            .append("pickupDoneTime", getPickupDoneTime())
            .append("checkoutShippingCarrier", getCheckoutShippingCarrier())
            .append("reverseShippingFee", getReverseShippingFee())
            .append("sellerShippingFee", getSellerShippingFee())
            .append("sellerOrderStatus", getSellerOrderStatus())
            .append("sellerPackageTime", getSellerPackageTime())
            .append("sellerPackageBy", getSellerPackageBy())
            .append("warehouseOrderStatus", getWarehouseOrderStatus())
            .append("warehousePackageTime", getWarehousePackageTime())
            .append("warehousePackageBy", getWarehousePackageBy())
            .append("warehouseProcessStatus", getWarehouseProcessStatus())
            .append("trackingNo", getTrackingNo())
            .append("orderStartTime", getOrderStartTime())
            .append("orderModifiedTime", getOrderModifiedTime())
            .append("payTime", getPayTime())
            .append("lastDeliveryTime", getLastDeliveryTime())
            .append("deliveryTime", getDeliveryTime())
            .append("refundTime", getRefundTime())
            .append("finishTime", getFinishTime())
            .append("createDate", getCreateDate())
            .append("createBy", getCreateBy())
            .append("lastUpdateDate", getLastUpdateDate())
            .append("lastUpdateBy", getLastUpdateBy())
            .toString();
    }
}
